/**
 * @author Rafik Ramsis
 */

var lblErrorMessageID;
function highLight(control, errorMessage)
{
	if(control == null) return;
	var oldStyle;
	if(control.getAttribute('style') != null)
	{
		oldStyle = control.getAttribute('style').toString();
		control.setAttribute('oldStyle', oldStyle);

	}
	control.style.backgroundColor = "yellow";
	control.style.borderColor = 'red';
	control.style.borderWidth = '1px';
	control.style.borderStyle = 'solid';
	
	if(errorMessage != null)
	{
		// Add alert text
		var lblErrorMessage = document.getElementById(lblErrorMessageID.toString());
		lblErrorMessage.innerHTML = errorMessage;
	}
}

function unHighlight(control)
{
	if(control == null) return;
	if(lblErrorMessageID != null)
	{
		document.getElementById(lblErrorMessageID.toString()).innerHTML = "";
	}
	if(control.getAttribute('oldStyle') == null)
	{
		control.removeAttribute('style');
		return;

	}
	control.setAttribute('style', control.getAttribute('oldStyle'));
	control.removeAttribute('oldStyle');


}

function validateEmail(control,errorMessage)
{
  	validRegExp = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i;
    if (control.value.search(validRegExp) == -1)
	{ 
	  highLight(control,errorMessage);
      return false;
	}
    return true; 
}

function validateRequired(control, errorMessage)
{
	if(control.value == null || control.value.length == 0)
	{
		highLight(control, errorMessage);
		return false;

	}
	return true;

}

function validateNumeric(control, errorMessage)
{
  	validRegExp = /(\+|-)?[0-9][0-9]*(\.[0-9]*)?/i;
    if (control.value.search(validRegExp) == -1) 
	{
		highLight(control, errorMessage);
      	return false;
	}
    return true;	

}

function validateUrl(control, errorMessage)
{
  	validRegExp = /(\w+):\/\/([\w.]+\/?)\S*/i;
    if (control.value.search(validRegExp) == -1) 
	{
		highLight(control, errorMessage);
      	return false;
    }
	return true; 
	

}

function validateTextControl(control, validationType, errorMessage)
{
	switch(validationType)
	{
		case 'required':
			control.onchange = function() {unHighlight(control)};	
			return validateRequired(control, errorMessage);
		break;
		
		case 'email':
			control.onchange = function() {unHighlight(control)};	
			return validateEmail(control, errorMessage);
		break;
		
		case 'numeric':
			control.onchange = function() {unHighlight(control)};	
			return validateNumeric(control, errorMessage);
		break;
		case 'url':
			control.onchange = function() {unHighlight(control)};	
			return validateUrl(control, errorMessage);
		break;

	}
	return false;
}

function clearError(control)
{
    unHighlight(control);
}

function bookmarksite(title,url)

{

    if (window.sidebar) // firefox

     window.sidebar.addPanel(title, url, "");

    else if(window.opera && window.print){ // opera

     var elem = document.createElement('a');

     elem.setAttribute('href',url);

     elem.setAttribute('title',title);

     elem.setAttribute('rel','sidebar');

     elem.click();

    }

    else if(document.all)// ie

     window.external.AddFavorite(url, title);

}
